package cn.wolfcode.domain;

import com.alibaba.fastjson.JSON;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.HashMap;
import java.util.Map;

@Getter
@Setter
@ToString
public class SystemDictionaryItem {
    //明细表类

    /** 主键*/
    private Long id;

    /** 标题*/
    private String title;

    /** 序号,用来控制显示顺序,有些选项比较常用就设置为1*/
    private Integer sequence;

    /** 所属目录,使用目标类对象接收*/
    private SystemDictionary type;

    /** 上级明细,使用本类另外的对象(上一级)接收*/
    private SystemDictionaryItem parent;

    public String toJson(){
        //即是将调用该方法的本类对象this转为JSON对象
        //但尽量用map,这样可以指定哪些字段
        Map<String,Object> map = new HashMap<>();
        map.put("id",id);
        map.put("title",title);
        map.put("sequence",sequence);
        if(type != null){
            map.put("typeId",type.getId());
        }
        //注意这里需要判断parent是否为null,不能判断parent.getId()是否为null,
        //如果parent已经为null,是无法指定getId()方法的
        if (parent != null){
            map.put("parentId",parent.getId());
            map.put("parentTitle",parent.getTitle());
        }
        return JSON.toJSONString(map);
    }
}